Nested Online Games for Real Money Gambling

ABSTRACT

Systems and methods are provided for executing nested online games. In a processor-executable method embodiment, operations include providing a graphical user interface (GUI) for a first online game and receiving a first game input from the user that represents a play according to game mechanics of the first online game. The embodiment also provides for displaying a GUI view for a second game and for receiving a second game input from the user representing a play according to game mechanics for the second game. The method provides to the user a payout for the first online game and a promotional payout that depends at least in part on a result related to the second game.

CLAIM OF PRIORITY

This application is a continuation of U.S. patent application Ser. No.14/449,134 filed on Jul. 31, 2014, entitled “Nested Online Games forReal Money Gambling,” which claims the benefit of and/or priority toU.S. Provisional Patent Application No. 61/861,962, also entitled“Nested Online Games for Real Money Gambling,” filed on Aug. 2, 2013.The disclosure of that provisional application is incorporated herein byreference for all purposes.

BACKGROUND

Though online gambling for real money allows a user to gambleconveniently from almost any location in a governmental jurisdiction, itlacks the excitement that results from being in the company of othergamblers at the slots or poker tables of a busy casino.

Consequently, websites that provide online gambling for real money areengaged in ongoing research and study into ways to make online gamblingmore exciting and interesting.

SUMMARY

In an example embodiment, a processor-executed method is described.According to the method, an operation includes providing by a server, agraphical user interface (GUI) for a first online game to be displayedon a device of a user. The method includes receiving, at the server, afirst game input from the user that represents a play according to gamemechanics of the first online game. The method further includes anoperation for providing, by the server, a GUI view for the a second gameto be displayed on the device of the user and an operation forreceiving, at the server, a second game input from the user representinga play according to game mechanics for the second game, the second gameinput is operable for producing a result related to the second game.Further, the method includes an operation for, responsive to the resultrelated to the second game, providing, by the server, the GUI view forthe first online game to return to be displayed on the device of theuser and providing to the user a payout for the first online game and apromotional payout that depends at least in part on the result relatedto the second game.

Another example embodiment also involves a processor-executed method.According to the method, an operation provides, by a server, a graphicaluser interface (GUI) view for an online game to be displayed to a deviceof a user. The method provides an operation for receiving, by theserver, a first game input from the user that represents a wager or aplay according to game mechanics of the online game. The method includesan operation for providing, by the server, a GUI view for a minigame tobe displayed to the device of the user, wherein the minigame is not agame of pure chance. The method also includes an operation forreceiving, at the server, a second game input from the user thatrepresents a play according to game mechanics for the minigame. Thesecond game input is operable for producing a result related to theminigame. Moreover, responsive to producing the result related to theminigame, the method includes an operation for providing the GUI viewfor the first online game to return to be displayed on the device of theuser and for providing a payout for the first online game to the userand providing a promotional payout that depends at least in part on theresult related to the minigame to the user.

In another example embodiment, an apparatus is described, namely,non-transitory computer-readable storage media that persistently store aprogram. The program might be part of software that runs on a serverand/or client device. The non-transitory computer-readable storagemedium includes program instructions for providing, by a server, agraphical user interface (GUI) view for a first online game to bedisplayed on a device of a user. The non-transitory computer-readablestorage medium includes program instructions for receiving, at theserver, a first game input from the user that represents a playaccording to game mechanics of the first online game. The non-transitorycomputer-readable storage medium further includes program instructionsfor providing a GUI view for a second game to be displayed on the deviceof the user as well as program instructions for receiving, at theserver, a second game input from the user representing a play accordingto game mechanics for the second game. The second game input is operablefor producing a result related to the second game. Further, thenon-transitory computer-readable storage medium includes programinstructions for providing, by the server in response to said producingthe result related to the second game, the GUI view for the first onlinegame to return to be displayed on the device of the user and providingto the user a payout for the first online game and a promotional payoutthat depends at least in part on the result related to the second game.

Other aspects and advantages of the inventions will become apparent fromthe following detailed description, taken in conjunction with theaccompanying drawings, which illustrate by way of example the principlesof the inventions.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a network diagram that illustrates a network for an onlinegame involving real-money gambling (RMG), in accordance with an exampleembodiment.

FIG. 2A is a software modularization for a cloud platform, in accordancewith an example embodiment.

FIG. 2B is an alternative software modularization for a cloud platform,in accordance with an example embodiment.

FIG. 3 is a flowchart diagram that illustrates a process for receiving aplay and broadcasting a payout in an online RMG game that includes aminigame, in accordance with an example embodiment.

FIGS. 4A and 4B are views in a graphical user interface (GUI) for avideo slot machine, in accordance with an example embodiment.

FIGS. 5A and 5B are GUI views for minigames, in an example embodiment.

FIG. 6 is a flowchart diagram that illustrates another process forreceiving a play and broadcasting a payout in an online RMG game thatincludes a minigame, in accordance with an example embodiment.

FIGS. 7A, 7B, and 7C are GUI views for a video poker game, in accordancewith an example embodiment.

FIG. 8 is a template message broadcast to the content/activity stream,in accordance with an example embodiment.

FIG. 9 is a flowchart diagram that illustrates a process for receiving aplay and broadcasting points in an arcade game that includes a minigamewhich is an online RMG game, in accordance with an example embodiment.

FIG. 10A is a sequence diagram that illustrates a sequence oftransmissions associated with a broadcast of a payout in an online RMGgame accessed from a social networking or social media website, inaccordance with an example embodiment.

FIG. 10B is a sequence diagram that illustrates a sequence oftransmissions associated with a broadcast of a payout in an online RMGgame accessed from an online RMG website, in accordance with an exampleembodiment.

DETAILED DESCRIPTION

In the following description, numerous specific details are set forth inorder to provide a thorough understanding of the exemplary embodiments.However, it will be apparent to one skilled in the art that the exampleembodiments may be practiced without some of these specific details. Inother instances, process operations and implementation details have notbeen described in detail, if already well known.

FIG. 1 is a network diagram that illustrates a network for an onlinegame involving real-money gambling (RMG), in accordance with an exampleembodiment. As depicted in this figure, a personal computing device 102is connected by a network 101 (e.g., a wide area network (WAN) includingthe Internet, which might be wireless in part or in whole) with awebsite 103 hosting a real-money gambling game (e.g., a website such asZynga hosting a video slot machine or other casino game) and a website106 hosting a social network (e.g., a website such as Facebook) and/orsocial media (e.g., a website such as Pinterest). As used here andelsewhere in this disclosure, the term “social networking/social mediawebsite” is to be broadly interpreted to include, for example, anywebsite that allows its users to, among other things, (a) selectivelyaccess (e.g., according to a contact list, buddy list, social graph, orother control list) content in each other's profiles; (b) selectively(e.g., according to a contact list, buddy list, social graph,distribution list, or other control list) broadcast content to eachother's content/activity streams; and/or (3) selectively communicate(e.g., according to a contact list, buddy list, social graph,distribution list, or other control list) with each other (e.g., using amessaging protocol such as email, instant messaging, short messageservice (SMS), etc.). As also depicted in FIG. 1, website 103 might alsobe connected by network 101 (e.g., through a secure applicationprogramming interface (API)) to a website 108 controlled and maintainedby a governmental agency or a third-party certifying agency. In exampleembodiments, website 108 might be associated with (a) a governmentalagency (e.g., the Nevada Gaming Control Board, the New Jersey CasinoControl Commission, or the Isle of Man Gambling Supervision Commission(IMGSC)) or (b) a third-party certifying agency (e.g., an accountingfirm such as one of the “Big Four” auditing firms or a consulting firmsuch as Cigital, Ltd.). Such a governmental agency or third-partycertifying agency might use network 101 to conduct or facilitate anaudit of website 103 (e.g., test and certify the website's random numbergenerator (RNG) against standards such as the “Online Gambling (SystemsVerification) (No. 2) Regulations 2007” promulgated by the IMGSC). In analternative embodiment, website 103 might be connected by a dedicatednetwork connection to website 108. The described auditing parties aremerely examples, and other auditing commissions, agencies, or entitiesor combinations thereof might conduct and/or facilitate auditing ofwebsite 103. In example embodiments, website 103 might execute software(e.g., client software) that facilitates real-time (or near real-time)reporting to or auditing by website 108.

Also, in an example embodiment, website 108 might be associated with anon-regulatory governmental agency, such as the federal state departmentor a state department of motor vehicles, which keeps and maintainsage-related records such as birth certificates, passports, driver'slicenses, identification (ID) cards, social-security numbers, etc. Inthis example embodiment, website 103 might use network 101 or adedicated network connection to connect to website 108 to verify that auser of an online RMG game is old enough (e.g., age twenty-one or over)to legally play the online RMG game.

FIG. 2A is a software modularization for a cloud platform, in accordancewith an example embodiment. As depicted in this figure, a player isusing a web browser or app 201 on a mobile device (e.g., a smartphone ora tablet computer) to interact with (e.g., transmit or receive gamedata) server software 203 running on a website hosting an online RMGgame (e.g., running on the servers at website 103 in FIG. 1). It will beappreciated that an application program for a mobile device is oftenreferred to as an “app”. In an example embodiment, server software 203might be implemented using a public, private, or hybrid cloud platform,e.g., a hybrid cloud platform whose public cloud is Amazon ElectricCompute Cloud (EC2) and whose private cloud is built using Cloud.com'sCloudStack software. In an alternative example embodiment, serversoftware 203 might be implemented using other public clouds and/or otherprivate clouds that provide similar functionality. Or, server software203 might be implemented without resort to third-party cloud platforms,e.g., using (a) OpenStack or (b) load balancing and virtualizationsoftware (e.g., Citrix XenServer, VMware, Microsoft, or Xen),distributed computing software (such as Hadoop (which implementsMap-Reduce), Dremel/Apache Drill, etc.), distributed memory-cachingsoftware (such as memcached), distributed key-value database software(such as Couchbase Server nee Membase Server), NoSQL database-managementsoftware, structured database-management software (such as MySQL andNewSQL), etc. It will also be appreciated that SQL is an acronym whichstands for Structured Query Language.

Returning to FIG. 2A, server software 203 includes load balancers 204(e.g., the load balancing and virtualization software provided byCitrix, VMware, Microsoft, or Xen) that balance the load between theservers (e.g., Apache HTTP servers) in an elastic (or dynamic) array205. It will be appreciated that the array is elastic because its sizecan be increased to accommodate additional servers and decreased toaccommodate fewer servers. As further depicted in FIG. 2A, the serversin the elastic array 205 transmit (e.g., using HTTP) data to and receivedata from (a) the web browser or app 201 and/or (b) the servers on asocial networking website 202 such as Facebook. In an exampleembodiment, the servers might read data from and write data to memorycache 206 (e.g., a memory cache created with memcached and managed withCouchbase Server), which, in turn, is backed by database 208, whichmight be MySQL. In an alternative example embodiment, the database 208might be NoSQL. It will be appreciated that performance latencies can besignificantly reduced by such a caching arrangement, which exploitslocality of reference. It will also be appreciated that memory cache 104a in FIG. 1 corresponds to the memory cache 206 in FIG. 2 and thepersistent storage 105 in FIG. 1 corresponds to the database 208 in FIG.2A. In an example embodiment, synch queue 207 might receive the datafrom memory cache 206 to be written asynchronously to the database 208.As indicated on FIG. 2A, the software modularization depicted in thefigure might be implemented as a LAMMP (Linux, Apache, Memcache, MySQL,PHP) architecture, in an example embodiment.

FIG. 2B is an alternative software modularization for a cloud platform,in accordance with an example embodiment. As depicted in this figure, aplayer is using a web browser or app 201 on a mobile device (e.g., asmartphone or a tablet computer) to interact with server software 203running on a website hosting an online RMG game. In an exampleembodiment, server software 203 might be implemented using a public,private, or hybrid cloud platform. Alternatively, server software 203might be implemented without resort to third-party cloud platforms,e.g., using load balancing and virtualization software, distributedcomputing software, distributed memory-caching software, distributedkey-value database software, NoSQL database-management software,structured database-management software, etc.

In FIG. 2B, server software 203 includes load balancers 204 that balancethe load between the servers in an elastic array 205. As furtherdepicted in this figure, the servers in the elastic array 205 transmitdata to and receive data from (a) the web browser or app 201 and/or (b)the servers on a social networking website 202 such as Facebook. In anexample embodiment, the servers might read data from and write data to ahybrid in-memory database (e.g., a hybrid in-memory database such asMembase/Couchbase Server) which comprises volatile storage 206 a andpersistent storage 206 b.

FIG. 3 is a flowchart diagram that illustrates a process for receiving aplay and broadcasting a payout in an online RMG game that includes aminigame, in accordance with an example embodiment. In an exampleembodiment, one or more of the operations in this process might beperformed by software (including software 203) running on servers at awebsite 103, e.g., a website, such as Zynga, hosting an online RMG game.In the same or an alternative embodiment, one or more of the operationsin these processes might be performed by software running on personalcomputing device 102, e.g., (a) instructions in a webpage read by abrowser supporting Adobe Shockwave/ActionScript orHTML5/CSS3/JavaScript, or (b) instructions in an app (or in a hybrid appwith embedded HTML5) executing on a smartphone. It will be appreciatedthat ActionScript and JavaScript might be used to implement animationand/or interactivity through a browser, in example embodiments.

The process described in FIG. 3 makes use of the social relations (e.g.,friends, followers, contacts, etc.) of a user, according to a contactlist, buddy list, social graph, or other control list. It will beappreciated that access to these social relations is controlled by theuser. That is to say, the software performing the operations in FIG. 3(and the other figures) will only have access to these social relationsif the user authorizes such access, e.g., through a command entered on aGUI dialog displayed or caused to be displayed by the software.Similarly, in an example embodiment, the software performing theoperations in FIG. 3 (and the other figures) might only have access tothe profiles and/or content/activity streams of a social relation ifauthorized by the social relation, e.g., through a command entered on aGUI dialog displayed or caused to be displayed by software at website103.

As depicted in FIG. 3, software (e.g., running on a server and/or clientdevice) verifies that a user of a client device (e.g., smartphone,tablet, or laptop) is eligible to play an online RMG game in which thewager and the payout are made with real money, in operation 301. In anexample embodiment, this operation, which might be performed inconjunction with authentication, includes verifying that the user is oldenough to legally play (e.g., age twenty-one or older) using stored datarelating to age (e.g., from a birth certificate, passport, driver'slicenses, identification (ID) cards, social-security number, etc.) ordata relating to age that might be obtained in real time or near realtime (e.g., through a web or other API exposed by a governmental agencysuch as a federal state department or a state department of motorvehicles). Also, in an example embodiment, this operation might includeverifying that a user's client device is located within the geographicalboundaries of a governmental jurisdiction (e.g., within the state ofNevada or within the city of Atlantic City) using: (a) aglobal-positioning system (GPS); (b) a WiFi positioning system, whichmight include an indoor positioning system; (c) multilateration, e.g.,using radio towers; (d) data such as “check-ins” retrieved fromlocation-based social media; or (e) a combination (e.g., a hybridsystem) of the foregoing. In an example embodiment, this operation mightalso include verification that the user meets non-governmentalconditions relating to eligibility, e.g., that the user is not a problemgambler as determined by data in a user profile stored and maintained bywebsite 103. For example, a user might be identified as a problemgambler if a recent credit report for the user is relatively bad and theuser has lost a relatively large amount of money in a relatively shortperiod of time.

In operation 302, the software causes the display of a GUI view for anonline RMG game (e.g., casino game) on the client device. In an exampleembodiment, the online RMG game is a video version of a so-called “gameof pure chance” such as slots, roulette, keno (e.g., lottery), etc.,that does not depend on strategy or skill (e.g., including skill inestimating the odds of winning given an event or a number of events). Inoperation 303, the software receives input from the user (e.g., a pushof GUI button) representing a wager (e.g., a specification of monetaryamount) and/or a play (e.g., a spin of slot machine reels or a spin of aroulette wheel), according to the game mechanics for the online RMGgame. In an example embodiment, one wager might be associated withseveral plays of the online RMG game. Or several wagers might beassociated with one play of the online RMG game. Then the softwarecauses a GUI view for a minigame (which might be online, offline, or acombination of the two) to be displayed to the user, in operation 304.For example, the GUI view for the minigame might be displayed followinga wager but before receipt of a play in the online RMG game. Or the GUIview for the minigame might be displayed following receipt of play inthe online RMG game, but before the determination (e.g., using an RNG)of whether the play results in a payout, according to a paytable for theonline RMG game. The GUI view of the minigame might be displayedperiodically after a specified number of wagers or plays in the onlineRMG game. For example, the GUI view of the minigame might be displayedafter every other wager or play in the online RMG game or after everyfive wagers or after every five plays in the online RMG game.Alternatively, the GUI view of the minigame might be displayed afterevery wager or after every play in the online RMG game.

In an example embodiment, the minigame is not game of pure chance. Forexample, the minigame might be a video version of an arcade game withsocial-networking features that involves matching (e.g., a tile-matchingor match-3 game) such as Zynga's Ruby Blast or Zynga's Bubble Safari. Inan example embodiment, the social-networking features might includeallowing a user to invite social relations (e.g., friends, followers, orcontacts) to assist with playing the game (e.g., completing a game task)or to join the game. The social-networking features might also includebroadcasting a user's points or other achievements (e.g., power levels)from the game to the content/activity streams of social relations whohave authorized such broadcasts (e.g., through a GUI dialog). Inoperation 305, the software receives input from the user (e.g., a mouseclick or a mouse-cursor movement) representing a play (e.g., matching anumber of gems or a number of colored bubbles), according to the gamemechanics for the minigame. The software provides a payout for theonline RMG game, in operation 306. Such a payout might occur following anew wager and/or a new play by the user in the online RMG game, in anexample embodiment. It will be appreciated that a payout for an onlineRMG game might be determined by a paytable that is a schedule of payoutsfor the outcomes that might occur from wagers and plays in the onlineRMG game. In an example embodiment, the online RMG game might be a videoslot machine. It will be appreciated that a paytable for a video slotmachine is a table that shows the schedule of payouts for each winningpayline, depending on the amount wagered. It will further be appreciatedthat for a video slot machine, a winning payline might consist ofmultiple matching reel symbols in a horizontal, oblique, triangular,trapezoidal, zigzag, etc., line, e.g., three matching pieces of fruit(three bananas) in a horizontal line. A video slot machine that is amulti-line game might have multiple winning paylines.

In an example embodiment, the payout in operation 306 might include apromotional payout that depends on a play in minigame (e.g., matchingthree gems or matching three colored bubbles). The play might be a playreceived in operation 303. Or the play might be a new play by the userin the online RMG game. In an example embodiment, a promotional payoutis a supplemental payout that is not reflected in the paytable for anonline RMG game, e.g., a relatively small percentage such asapproximately 1-20 percent of the paytable payout. Then in operation307, the software broadcasts the payout to persons who are socialrelations (e.g., friends, followers, or contacts) of the user who haveauthorized the broadcast (e.g., through a GUI dialog). In an exampleembodiment, such broadcasting might be accomplished through the use ofan application programming interface (API), which might be a web API,exposed by software running on a social networking/social media website(e.g., website 106 in FIG. 1). Examples of such APIs include Facebook(REST) API, Facebook Graph API, Twitter API, Bebo's Social NetworkingAPI (SNAPI), OpenSocial API, etc. It will be appreciated that theFacebook APIs allow authorized third parties (e.g., third parties withan access token and/or permissions) to access a user's Facebook profileand the content/activity stream (e.g., Facebook News Feed) associatedwith that profile. Alternatively, the software might broadcast thepayout to persons who are social relations using a messaging protocolsuch as email, instant messaging, SMS, etc. In some example embodiments,the software might not perform the broadcasting operation 307.

FIGS. 4A and 4B are views in a graphical user interface (GUI) for avideo slot machine, in accordance with an example embodiment. Asdepicted in FIG. 4A, view 401 includes four virtual reels; virtual reel402 is the leftmost reel. The theme of the video slot machine is“Alice's Adventures in Wonderland”. Consequently, the reel symbolsinclude the March Hare, the Mad Hatter, the Caterpillar, the Queen ofHearts, the Cheshire Cat (WILD), a painted-red rose, and the Clubs Suitsymbol. It will be appreciated that a wild symbol, like the CheshireCat, can substitute for any other symbol to achieve a winningcombination. The view 401 also includes a “BET” button 403 which allowsthe user to set the monetary amount of the wager (e.g., 1) and a “SPIN”button 404 which allows a user to initiate a play. FIG. 4B shows view401 with a winning payline 405, e.g., a winning payline resulting fromtwo Club Suits symbols and a Cheshire Cat (WILD) symbol next to eachother in a horizontal line.

FIGS. 5A and 5B are GUI views for minigames, in an example embodiment.FIG. 5A depicts a GUI view 501 for a minigame called “Ruby Blast”, byZynga Inc., which runs on a mobile-device platform as described below.In an example embodiment of the game, a user matches three or more gemsin a mine (e.g., using mouse clicks) during a time period in order to(a) dig deeper in the mine to recover artifacts for points and (b)achieve higher power levels. It will be appreciated that this minigameis a tile-matching game, specifically, a match-3 game. And it willfurther be appreciated that it is not a game of pure chance, since auser with a better strategy and better skill and/or speed at matchingmight achieve a higher point score and a higher power level. In anexample embodiment, this minigame might include one or more of thesocial features discussed above. As depicted in this figure, GUI view501 includes a text box 502 which states: “Play Ruby Blast for a Chanceto Unlock Additional Winning Paylines or Boost Your Paytable!”. Asdescribed above, a winning payline is a payline that results in a payoutby a video slot machine. In another example embodiment, the text in thetext box might serve as an inducement for the user to continue playingthe online RMG game, using text similar to the following: ““Play RubyBlast for a Chance to Unlock Additional Winning Paylines or Boost YourPaytable on Your Next Spin!”.

FIG. 5B depicts a GUI view 503 for a minigame called “Bubble Safari”, byZynga Inc., which runs on a personal-computer platform and amobile-device platform as described below. In an example embodiment ofthe game, a user aims and fires a gun (e.g., using mouse movements andmouse clicks) loaded with a colored bubble to match three or morecolored bubbles in the air in order to (a) score points and (b) releasefood that allows the user to achieve higher power levels. It will beappreciated that this minigame is also a tile-matching game,specifically, a match-3 game. And it will further be appreciated that itis not a game of pure chance, since a user with a better strategy andbetter skill and/or speed at aiming and matching might achieve a higherpoint score and a higher power level. In an example embodiment, thisminigame might also include one or more of the social features discussedabove. As depicted in this figure, GUI view 503 includes a text box 504which states: “Play Bubble Safari for a Chance to Unlock AdditionalWinning Paylines or Boost Your Paytable!”. In another exampleembodiment, the text in the text box might serve as an inducement forthe user to continue playing the online RMG game, using text similar tothe following: ““Play Bubble Safari for a Chance to Unlock AdditionalWinning Paylines or Boost Your Paytable on Your Next Spin!”.

FIG. 6 is a flowchart diagram that illustrates another process forreceiving a play and broadcasting a payout in an online RMG game thatincludes a minigame, in accordance with an example embodiment. In anexample embodiment, one or more of the operations in this process mightbe performed by software (including software 203) running on servers ata website 103, e.g., a website, such as Zynga Inc., hosting an onlineRMG game. In the same or an alternative embodiment, one or more of theoperations in these processes might be performed by software running onpersonal computing device 102, e.g., (a) instructions in a webpage readby a browser supporting Adobe Shockwave/ActionScript orHTML5/CSS3/JavaScript, or (b) instructions in an app (or in a hybrid appwith embedded HTML5) executing on a smartphone. It will be appreciatedthat ActionScript and JavaScript might be used to implement animationand/or interactivity through a browser, in example embodiments.

Here again, the process described in FIG. 6 makes use of the socialrelations (e.g., friends, followers, contacts, etc.) of a user,according to a contact list, buddy list, social graph, or other controllist. It will be appreciated that access to these social relations iscontrolled by the user. That is to say, the software performing theoperations in FIG. 6 (and the other figures) will only have access tothese social relations if the user authorizes such access, e.g., througha command entered on a GUI dialog displayed or caused to be displayed bythe software. Similarly, in an example embodiment, the softwareperforming the operations in FIG. 6 (and the other figures) might onlyhave access to the profiles and/or content/activity streams of a socialrelation if authorized by the social relation, e.g., through a commandentered on a GUI dialog displayed or caused to be displayed by softwareat website 103.

As depicted in FIG. 6, software (e.g., running on a server and/or clientdevice) verifies that a user of a client device (e.g., smartphone,tablet, or laptop) is eligible to play an online RMG game in which thewager and the payout are made with real money, in operation 601. In anexample embodiment, this operation, which might be performed inconjunction with authentication, includes verifying that the user is oldenough to legally play (e.g., age twenty-one or older) using stored datarelating to age (e.g., from a birth certificate, passport, driver'slicenses, identification (ID) cards, social-security number, etc.) ordata relating to age that might be obtained in real time or near realtime (e.g., through a web or other API exposed by a governmental agencysuch as a federal state department or a state department of motorvehicles). Also, in an example embodiment, this operation might includeverifying that a user's client device is located within the geographicalboundaries of a governmental jurisdiction (e.g., within the state ofNevada or within the city of Atlantic City) using: (a) aglobal-positioning system (GPS); (b) a WiFi positioning system, whichmight include an indoor positioning system; (c) multilateration, e.g.,using radio towers; (d) data such as “check-ins” retrieved fromlocation-based social media; or (e) a combination (e.g., a hybridsystem) of the foregoing. In an example embodiment, this operation mightalso include verification that the user meets non-governmentalconditions relating to eligibility, e.g., that the user is not a problemgambler as determined by data in a user profile stored and maintained bywebsite 103. For example, a user might be identified as a problemgambler if a recent credit report for the user is relatively bad and theuser has lost a relatively large amount of money in a relatively shortperiod of time.

In operation 602, the software causes the display of a GUI view for anonline RMG game (e.g., casino game) on the client device. In an exampleembodiment, the online RMG game is not a game of pure chance. Examplesof online casino games that are not games of pure chance include videoversions of poker, craps, baccarat, pai gow, etc. In operation 603, thesoftware receives input from the user (e.g., a push of GUI button)representing a wager (e.g., a specification of monetary amount) and/or aplay (e.g., a spin of slot machine reels or a roulette wheel), accordingto the game mechanics for the online RMG game. In an example embodiment,one wager might be associated with several plays of the online RMG game.Or several wagers might be associated with one play of the online RMGgame. Then the software causes a GUI view for a minigame (which might beonline, offline, or a combination of the two) to be displayed to theuser, in operation 604. For example, the GUI view for the minigame mightbe displayed following a wager but before receipt of a play in theonline RMG game. Or the GUI view for the minigame might be displayedfollowing receipt of play in the online RMG game, but before thedetermination (e.g., using an RNG) of whether the play results in apayout, according to a paytable for the online RMG game. The GUI view ofthe minigame might be displayed periodically after a specified number ofwagers or plays in the online RMG game. For example, the GUI view of theminigame might be displayed after every other wager or play in theonline RMG game or after every five wagers or after every five plays inthe online RMG game. Alternatively, the GUI view of the minigame mightbe displayed after every wager or after every play in the online RMGgame.

In an example embodiment, the minigame is also not game of pure chance.For example, the minigame might be a video version of an arcade gamewith social-networking features that involves matching (e.g., atile-matching or match-3 game) such as Zynga's Ruby Blast or Zynga'sBubble Safari. In an example embodiment, the social-networking featuresmight include allowing a user to invite social relations (e.g., friends,followers, or contacts) to assist with playing the game (e.g.,completing a game task) or to join the game. They might also includebroadcasting a user's points or other achievements (e.g., power levels)from the game to the content/activity streams of social relations whohave authorized such broadcasts (e.g., through a GUI dialog).

In operation 605, the software receives input from the user (e.g., amouse click or a mouse-cursor movement) representing a play (e.g.,matching a number of gems or a number of colored bubbles), according tothe game mechanics for the minigame. The software provides a payout forthe online RMG game, in operation 606. Such a payout might occurfollowing a new wager and/or a new play by the user in the online RMGgame, in an example embodiment. As described above, a payout for anonline RMG game might be determined by a paytable that is a schedule ofpayouts for the outcomes that might occur from wagers and plays in theonline RMG game. In an example embodiment, the online RMG game might bevideo poker. A paytable for video poker might show the schedule ofpayouts for each winning hand, depending on the amount wagered.

In an example embodiment, the payout in operation 606 might include apromotional payout that depends on the play in minigame (e.g., matchingthree gems or matching three colored bubbles). The play might be a playreceived in operation 603. Or the play might be a new play by the userin the online RMG game. In an example embodiment, a promotional payoutis a supplemental payout that is not reflected in the paytable for anonline RMG game, e.g., a relatively small percentage such asapproximately 1-20 percent of the paytable payout. Then in operation607, the software broadcasts the payout to persons who are socialrelations (e.g., friends, followers, or contacts) of the user who haveauthorized the broadcast (e.g., through a GUI dialog). In an exampleembodiment, such broadcasting might be accomplished through the use ofan application programming interface (API), which might be a web API,exposed by software running on a social networking/media website (e.g.,website 106 in FIG. 1). Examples of such APIs include Facebook (REST)API, Facebook Graph API, Twitter API, Bebo's Social Networking API(SNAPI), OpenSocial API, etc. It will be appreciated that the FacebookAPIs allow authorized third parties (e.g., third parties with an accesstoken and/or permissions) to access a user's Facebook profile and thecontent/activity stream (e.g., Facebook News Feed) associated with thatprofile. Alternatively, the software might broadcast the payout topersons who are social relations using a messaging protocol such asemail, instant messaging, SMS, etc. Here again, in some exampleembodiments, the software might not perform the broadcasting operation607.

In the flowchart diagram shown in FIG. 3, the online RMG game is acasino game of pure chance. In flowchart diagram shown in FIG. 6, theonline RMG game is a casino game that is not a game of pure chance. Inboth of the flowchart diagrams in FIGS. 3 and 6, the minigame is not agame of pure chance. These examples are meant as illustrative ratherthan limiting. In another example embodiment, both the online RMG gameand the minigame might be games of pure chance (e.g., both the onlineRMG game and the minigame might be casino games). Or, the online RMGgame might not be a game of pure chance and the minigame might be a gameof pure chance (again, both the online RMG game and the minigame mightbe casino games).

FIGS. 7A, 7B, and 7C are views in a graphical user interface (GUI) for avideo poker game, in accordance with an example embodiment. As depictedin FIG. 7A, view 701 includes a hand of five face-down cards that havebeen dealt to a player, e.g., following a wager and play. As shown bythe figure, the wager was $100, which the player specified by clickingon GUI button 703. Play was initiated by clicking on button 704, labeled“DEAL”. View 701 also includes the paytable 702 for the video pokergame, which shows the payout schedule for winning hands based on themonetary amount wagered. In FIG. 7B, the player has turned over the fivecards in view 701 and now has an opportunity to draw a substitute cardfor each one of them. If the player wants to keep one of the existingcards, the player will click the GUI button labeled “Hold” below thecard, such as GUI button 705. When the player clicks the GUI button 706labeled “DRAW”, the player will receive substitute cards for any cardsnot held. It will be appreciated that a video slot machine is a game ofpure chance or nearly pure chance. It will be appreciated that videopoker might be considered a game of strategy and/or skill, if a playeris permitted to discard and draw cards. FIG. 7C shows the results of theplayer's decision to draw substitute cards for all five cards. Asindicated by text box 707, the player has won a payout of $100 since theplayer's substitute cards included a pair of kings, which is better thana pair of jacks. The corresponding entry 708 in the paytable shows thatthe payout amount is the same monetary amount of the player's wager. Toinitiate another play with the same wager, the player will click againon the button 704.

FIG. 8 is a template message broadcast to a content/activity stream, inaccordance with an example embodiment. In an example embodiment, thecontent/activity stream 801 might be associated with a profile of asocial relation (e.g., friend, follower, or contacts) of a player of anonline RMG game, e.g., the video poker game described in FIGS. 7A, 7B,and 7C. The content/activity stream and the profile might be maintainedby a social networking/social media website accessed through an API bythe online RMG website. Or the content/activity stream and the profilemight be maintained by the online RMG website itself. In an exampleembodiment, the social relation might have previously authorized thebroadcast, e.g., through a GUI dialog caused to be displayed by theonline RMG website. As depicted in FIG. 8, the template message 802broadcasts the payout of $105 awarded to “Bad Bob” as a result ofplaying the video poker game. It will be appreciated that such messagesmight stimulate interest in the video poker game, both among persons whoare already playing the video poker game and persons who are not.

In an example embodiment, the content of template message 802 might varydepending on the age or other attributes of the social relation. Forexample, if the social relation is also a player of the online RMG game(e.g., a person who has been verified as eligible to play the online RMGgame), the content of the message might be as shown in template message802. But if the social relation is not a player of the online RMG gameor is a person whose age has not been verified, the template messagemight say something like the following: “Bad Bob has played Jacks orBetter (age-requirement 21)”.

FIG. 9 is a flowchart diagram that illustrates a process for receiving aplay and broadcasting points in an arcade game that includes a minigamewhich is an online RMG game, in accordance with an example embodiment.In an example embodiment, one or more of the operations in this processmight be performed by software (including software 203) running onservers at a website 103, e.g., a website, such as Zynga Inc., hostingan online RMG game. In the same or an alternative embodiment, one ormore of the operations in these processes might be performed by softwarerunning on personal computing device 102, e.g., (a) instructions in awebpage read by a browser supporting Adobe Shockwave/ActionScript orHTML5/CSS3/JavaScript, or (b) instructions in an app (or in a hybrid appwith embedded HTML5) executing on a smartphone. It will be appreciatedthat ActionScript and JavaScript might be used to implement animationand/or interactivity through a browser, in example embodiments.

Here again, the process described in FIG. 9 makes use of the socialrelations (e.g., friends, followers, contacts, etc.) of a user,according to a contact list, buddy list, social graph, or other controllist. It will be appreciated that access to these social relations iscontrolled by the user. That is to say, the software performing theoperations in FIG. 9 (and the other figures) will only have access tothese social relations if the user authorizes such access, e.g., througha command entered on a GUI dialog displayed or caused to be displayed bythe software. Similarly, in an example embodiment, the softwareperforming the operations in FIG. 9 (and the other figures) might onlyhave access to the profiles and/or content/activity streams of a socialrelation if authorized by the social relation, e.g., through a commandentered on a GUI dialog displayed or caused to be displayed by softwareat website 103.

As depicted in FIG. 9, software (e.g., running on a server and/or clientdevice) verifies that a user of a client device (e.g., smartphone,tablet, or laptop) is eligible to play an online RMG game in which wagerand payout are made with real money, in operation 901. In an exampleembodiment, this operation, which might be performed in conjunction withauthentication, includes verifying that the user is old enough tolegally play (e.g., age twenty-one or older) using stored data relatingto age (e.g., from a birth certificate, passport, driver's licenses,identification (ID) cards, social-security number, etc.) or datarelating to age that might be obtained in real time or near real time(e.g., through a web or other API exposed by a governmental agency suchas a state department or a department of motor vehicles). Also, in anexample embodiment, this operation might include verifying that a user'sclient's is located within the geographical boundaries of a governmentaljurisdiction (e.g., within the state of Nevada or within the city ofAtlantic City) using a global-positioning system (GPS), a WiFipositioning system, which includes an indoor positioning system,multilateration, e.g., using radio towers, data such as “check-ins”retrieved from location-based social media; a combination (e.g., ahybrid system) of the foregoing, etc. In an example embodiment, thisoperation might also include verification that the user meetsnon-governmental conditions relating to eligibility, e.g., that the useris not a problem gambler, as determined by data in a user profile storedand maintained by website 103. For example, a user might be identifiedas a problem gambler if a recent credit report for the user isrelatively bad and the user has lost a relatively large amount of moneyin a relatively short period of time.

In operation 902, the software causes a GUI view for an arcade game tobe displayed on the client device. In an example embodiment, the arcadegame is not a game of pure chance. For example, the arcade game might bea video version of an arcade game with social-networking features thatinvolves matching (e.g., a tile-matching or match-3 game) such asZynga's Ruby Blast or Zynga's Bubble Safari. In an example embodiment,the social-networking features might include allowing a user to invitesocial relations (e.g., friends, followers, or contacts) to assist withplaying the game (e.g., completing a game task) or to join the game.They might also include broadcasting a user's points or otherachievements (e.g., power levels) from the game to the content/activitystreams of social relations who have authorized such broadcasts (e.g.,through a GUI dialog).

In operation 903, the software receives input from the user (e.g., amouse click or a mouse-cursor movement) representing a play (e.g.,matching a number of gems or a number of colored bubbles), according togame mechanics for the arcade game. Then, in operation 904, the softwarecauses a GUI view for an online minigame to be displayed on the clientdevice, where the online minigame is an online RMG game (e.g., casinogame). In operation 905, the software receives input from the user(e.g., a push of GUI button) representing a wager (e.g., a specificationof monetary amount) and/or a play (e.g., a spin of slot machine reels ora poker deal/draw), according to the game mechanics for the online RMGgame. Then the software provides a payout for the online RMG game (e.g.,using another GUI view for the minigame) and uses the payout todetermine bonus points for the arcade game, in operation 906. And inoperation 907, the software broadcasts the points for the arcade game(including any bonus points) to persons who are social relations (e.g.,friends, followers, or contacts) of the user who have authorized thebroadcast (e.g., through a GUI dialog). In an example embodiment, suchbroadcasting might be accomplished through the use of an applicationprogramming interface (API), which might be a web API, exposed bysoftware running on a social networking/media website (e.g., website 106in FIG. 1). Examples of such APIs include Facebook (REST) API, FacebookGraph API, Twitter API, Bebo's Social Networking API (SNAPI), OpenSocialAPI, etc. It will be appreciated that the Facebook APIs allow authorizedthird parties (e.g., third parties with an access token and/orpermissions) to access a user's Facebook profile and thecontent/activity stream (e.g., Facebook News Feed) associated with thatprofile. Alternatively, the software might broadcast the points for thearcade game (including any bonus points) to persons who are socialrelations using a messaging protocol such as email, instant messaging,SMS, etc. Here again, in some example embodiments, the software mightnot perform the broadcasting operation 907.

FIG. 10A is a sequence diagram that illustrates a sequence oftransmissions associated with a broadcast of a payout in an online RMGgame accessed from a social networking/media website, in accordance withan example embodiment. As depicted in this diagram, a player has used abrowser 1001 on a personal computing device to log onto a socialnetworking website, e.g., server software 1002 (e.g., Facebook).However, many of the transmissions described in this figure and FIG. 10Bmight also occur if a player using a smartphone were to run a hybrid appwritten in Objective C or Java that includes embedded HTML5.

In operation 1, the player clicks on a graphic for the game, causingbrowser 1001 to transmit an HTTP request to server software 1002 (e.g.,Facebook) for the game's initial web page. In operation 2, serversoftware 1002 (e.g., Facebook) returns an HTML5, CSS3, and JavaScript(JS) web page consisting of an iFrame (e.g., Facebook “chrome”) and aniFrame HTML tag for the game's initial web page. In operation 3, thebrowser uses the HTML tag to transmit a request to server software 1003(e.g., Zynga) for the game's initial web page to display inside theiFrame. The game's initial web page might be an application server page(e.g., PHP 5) or an HTML5 page. In operation 4, the application serverpage executes on server software 1003 (e.g., Zynga), resulting inrequests to databases and other servers as needed to complete generationof the web page, including possibly an HTTP request (not shown)transmitted to an API exposed by server software 1002 (e.g., Facebook).In operation 5, the server software 1003 (e.g. Zynga) returns the game'sinitial web page (e.g., HTML5, CSS3, and JS) for the browser to displayin the iFrame.

At some point thereafter, in operation 6, the player clicks on a graphic(e.g., representing a graphical user interface or GUI widget) on a gameweb page (e.g., HTML5, CSS3, and JS), causing browser 1001 to transmitan HTTP request to server software 1003 (e.g., Zynga). The click mightbe a play in a minigame resulting in a payout (e.g., with a promotionalpayout determined by the play in a minigame) that is broadcast to thecontent/activity streams of social relations (e.g., friends, followers,or contacts) of the user who have authorized such broadcasts. Inoperation 7, the server software 1003 (e.g. Zynga) returns a web page(e.g., HTML5, CSS3, and JS) to the browser indicating that the requestwas received. In operation 8, the server software 1003 (e.g., Zynga)transmits an HTTP request to an API exposed by server software 1002(e.g., Facebook), broadcasting the payout to the content/activitystreams of the player's social relations on the social network managedby server software 1002 (e.g., Facebook). It will be appreciated that inorder to access the social relations' content/activity streams (e.g.,using an access token), the server software 1003 (e.g., Zynga) mighthave earlier obtained permission from the social relations, e.g., whenthey became players of the online RMG game or other online games at theonline RMG website. Then in operation 9, server software 1002 (e.g.,Facebook) sends a response, e.g., in Java Script Object Notation (JSON),to server software 1003 (e.g., Zynga) describing the success or failureof the broadcasting to each content/activity stream.

In an alternative example embodiment, the game's initial web page (orsome subsequent web page served up by the game) might have an AdobeFlash application (e.g., a Small Web Format (SWF) file) embedded in it.In this alternative example embodiment, the user of browser 1001 mightthereafter interact with the Adobe Flash application (e.g., its GUI),causing it to interact with the server software 1002 (e.g., Facebook)and the server software 1003 (e.g., Zynga).

FIG. 10B is a sequence diagram that illustrates a sequence oftransmissions associated with a broadcast of a payout in an online RMGgame accessed from an online RMG website, in accordance with an exampleembodiment. In operation 1, the player clicks on a graphic for the game,causing browser 1001 to transmit an HTTP request to server software 1003(e.g., Zynga) for the game's initial web page. The game's initial webpage might be an application server page (e.g., PHP 5) or an HTML5 page.In operation 2, the application server page executes on server software1003 (e.g., Zynga), resulting in requests to databases and other serversas needed to complete generation of the web page, including possibly anHTTP request (not shown) transmitted to an API exposed by serversoftware 1002 (e.g., Facebook). In operation 3, the server software 1003(e.g. Zynga) returns the game's initial web page (e.g., HTML5, CSS3, andJS) for the browser to display.

At some point thereafter, in operation 4, the player clicks on a graphic(e.g., representing a GUI widget) on a game web page (e.g., HTML5, CSS3,and JS), causing browser 1001 to transmit an HTTP request to serversoftware 1003 (e.g., Zynga). The click might be a play in a minigameresulting in a payout (e.g., with a promotional payout determined by theplay in a minigame) that is broadcast to the content/activity streams ofsocial relations (e.g., friends, followers, or contacts) of the user whohave authorized such broadcasts. In operation 5, the server software1003 (e.g. Zynga) returns a web page (e.g., HTML5, CSS3, and JS) to thebrowser indicating that the request was received. In operation 6, theserver software 1003 (e.g., Zynga) transmits an HTTP request to an APIexposed by server software 1002 (e.g., Facebook), broadcasting thepayout to the content/activity streams of the player's social relationson the social network managed by server software 1002 (e.g., Facebook).It will be appreciated that in order to access the social relations'content/ activity streams (e.g., using an access token), the serversoftware 1003 (e.g., Zynga) might have earlier obtained permission fromthe social relations, e.g., when they joined other Zynga games. Then inoperation 7, server software 1002 (e.g., Facebook) sends a response,e.g., in JSON, to server software 1003 (e.g., Zynga) describing thesuccess or failure of the broadcasting to each content/activity stream.

Here again, in an alternative example embodiment, the game's initial webpage (or some subsequent web page served by the game) might have anAdobe Flash application (e.g., a Small Web Format (SWF) file) embeddedin it. In this alternative example embodiment, the user of browser 1001might thereafter interact with the Adobe Flash application (e.g., itsGUI), which, in turn, might interact with the server software 1002(e.g., Facebook) and the server software 1003 (e.g., Zynga).

In terms of the hardware and software platforms involved in FIG. 1, thepersonal computing device 102 might be (a) a laptop or other personalcomputer or (b) a mobile device such as a smartphone, (e.g., an iPhone,Android, Blackberry, etc.) or a tablet computer (e.g., an iPad, Kindle,Nook, etc.). In an example embodiment, each of the websites 103, 106,and 108 might be composed of a number of servers connected by a network(e.g., a local area network (LAN) or a WAN) to each other in a clusteror other distributed system which might execute cloud-platform software,e.g., as described above. The servers in websites 103, 106, and 108might also be connected to persistent storages 105, 107, and 109,respectively. In an example embodiment, persistent storages 105, 107,and 109 might comprise a storage area network (SAN) and/or might includea redundant array of independent disks (RAID).

Persistent storage 105 might be used to store algorithms and/or logic,including game mechanics, and data related to an RMG game and itsplayers, including accounting data and data about the players receivedby website 103 from website 106 (e.g., through an applicationprogramming interface (API) exposed by website 106) or website 108(e.g., through an application programming interface (API) exposed bywebsite 108). In an example embodiment, some of the data from persistentstorage 105 might be cached in memory cache 104 a in volatile memory onservers on website 103 (e.g., using (a) an in-memory database or mainmemory database system (MMDB) or (b) a hybrid in-memory database thatalso uses persistent storage, in order to improve performance.Persistent storage 107 might be used to store data (including content)associated with a profile and/or content/activity stream for users of asocial networking/social media website, e.g., users who are associatedwith each other through control lists as described above. In an exampleembodiment, persistent storage 105 might store similar data or content.Some of the data stored in persistent storage 107 might be cached inmemory cache 104 b in volatile memory on servers at website 106, in anexample embodiment. Persistent storage 109 might be used to storegovernmental data (e.g., related to age) and/or auditing data (e.g.,reports from and/or results from audits of websites such as website 103)and logic (e.g., logic that implements minimum internal controlstandards and/or technical or other standards).

As indicated above, personal computing device 102 might be a laptop orother personal computer. In that event, personal computing device 102and the servers in website 103 and 106 might include (1) hardwareconsisting of one or more microprocessors and/or graphics processors(e.g., from the x86 family or the Power family), volatile storage (e.g.,RAM), and persistent storage (e.g., a hard disk or flash memory), and(2) an operating system (e.g., Windows, Mac OS, Linux, Windows Server,Mac OS Server, etc.) that runs directly or indirectly (e.g., throughvirtualization software) on the hardware. Or the operating system mightbe replaced in whole or in part by a hypervisor or other virtualizationsoftware. Alternatively, personal computing device 102 might be asmartphone, tablet computer, or other mobile device that includes (1)hardware consisting of one or more low-power microprocessors and/orgraphics processors (e.g., from the ARM family), volatile storage (e.g.,RAM), and persistent storage (e.g., flash memory) and (2) an operatingsystem (e.g., iOS, Android, Windows Phone, webOS, Linux, etc.) that runson the hardware.

Also in an example embodiment, personal computing device 102 mightinclude a web browser as an application program or part of an operatingsystem. Examples of web browsers that might execute on personalcomputing device 102 if it is a laptop or other personal computerinclude, Internet Explorer, Mozilla Firefox, and Safari. Examples ofbrowsers that might execute on personal computing device 102 if it is asmartphone, tablet computer, or other mobile device include AndroidBrowser, Safari, Mozilla Firefox, and webOS Browser. It will beappreciated that users of personal computing device 102 might usebrowsers to communicate with software running on the servers at website103 and at website 106. Alternatively, users of personal computingdevice 102 might use other application programs to communicate withsoftware running on the servers at website 103 and at website 106. Forexample, if the personal computing device 102 is a smartphone, tabletcomputer, or other mobile device, users might use an app (e.g., an appwritten in Objective C or Java) or a hybrid app (e.g., an app written inObjective C or Java that includes embedded HTML5) to communicate withsoftware running on the servers at website 103 and at website 106.

Though the disclosure above has focused on online RMG games, some or allof the operations described above might be used in a gamificationapplication rather than in an online RMG game. It will be appreciatedthat gamification involves the use of game design techniques, gamethinking, and game mechanics to enhance tasks performed in non-gamecontexts. So for example, some or all of the operations described abovemight be used in an employee training program.

With the above embodiments in mind, it should be understood that theinventions might employ various computer-implemented operationsinvolving data stored in computer systems. These operations are thoserequiring physical manipulation of physical quantities. Usually, thoughnot necessarily, these quantities take the form of electrical ormagnetic signals capable of being stored, transferred, combined,compared, and otherwise manipulated. Further, the manipulationsperformed are often referred to in terms, such as producing,identifying, determining, or comparing.

Any of the operations described herein that form part of the inventionsare useful machine operations. The inventions also relate to a device oran apparatus for performing these operations. The apparatus may bespecially constructed for the required purposes, such as the carriernetwork discussed above, or it may be a general purpose computerselectively activated or configured by a computer program stored in thecomputer. In particular, various general purpose machines may be usedwith computer programs written in accordance with the teachings herein,or it may be more convenient to construct a more specialized apparatusto perform the required operations.

The inventions can also be embodied as computer readable code on acomputer readable medium. The computer readable medium is any datastorage device that can store data, which can thereafter be read by acomputer system. Examples of the computer readable medium include harddrives, network attached storage (NAS), read-only memory, random-accessmemory, CD-ROMs, CD-Rs, CD-RWs, DVDs, Flash, magnetic tapes, and otheroptical and non-optical data storage devices. The computer readablemedium can also be distributed over a network coupled computer systemsso that the computer readable code is stored and executed in adistributed fashion.

Although example embodiments of the inventions have been described insome detail for purposes of clarity of understanding, it will beapparent that certain changes and modifications can be practiced withinthe scope of the following claims. For example, some or all of theoperations might be used with a client device that is not connected viaa network to an online RMG website until some time after a wager and aplay have been made by a player. Rather, a wager and a play might bestored on the client device and transmitted to an online RMG website ata later time, for collection of the wager and determination of anypayout. Furthermore, the operations described above can be ordered,modularized, and/or distributed in any suitable way. Accordingly, thepresent embodiments are to be considered as illustrative and notrestrictive, and the inventions are not to be limited to the detailsgiven herein, but may be modified within the scope and equivalents ofthe following claims. In the following claims, elements and/or steps donot imply any particular order of operation, unless explicitly stated inthe claims or implicitly required by the disclosure.

What is claimed:
 1. A method, comprising: providing, by a server, a graphical user interface (GUI) view for a first online game to be displayed on a device of a user; receiving, at the server, a first game input from the device of the user that represents a first play according to game mechanics of the first online game; providing, by the server, a GUI view for a second game to be displayed on the device of the user, the GUI view for the second game is overlaid on part of the GUI view for the first online game; receiving, at the server, a second game input from the device of the user representing a second play according to game mechanics for the second game, the second game input is operable for producing a result related to the second game; responsive to producing the result related to the second game, providing, by the server, the GUI view for the first online game to return to be fully displayed on the device of the user and providing to the user a payout for the first online game and a promotional payout that depends at least in part on the result related to the second game.
 2. The method of claim 1, wherein when the first online game returns to be fully displayed on the device of the user, the GUI view for the second game is removed from being overlaid on part of the GUI view for the first online game.
 3. The method of claim 2, wherein said providing the GUI view for the second game activates the second game and said providing the GUI view for the first online game to return to be fully displayed deactivates the second game.
 4. The method of claim 1, wherein said providing the GUI view for the first online game and providing the GUI view for the second game enables the user to make progress in both the first online game and the second game sequentially.
 5. The method of claim 1, wherein when the GUI view for the second game is subsequently displayed to the device of the user, the second game resumes from a game state caused by the second game input.
 6. The method of claim 1, further comprising: verifying, at the server, that the user is eligible to play the first online game, the verifying includes determining that the user is old enough to legally play using data related to age obtained through an application programming interface (API).
 7. The method of claim 1, wherein the first online game is a real money game and the second game is not a real money game.
 8. The method of claim 7, wherein the payout for the first online game and the promotional payout are for real money.
 9. The method of claim 1, wherein said providing the payout for the first online game is calculated based on a paytable associated with the first online game, and wherein the promotional payout is based on a percentage of the payout for the first online game as calculated by the paytable.
 10. A method, comprising: providing, by a server, a graphical user interface (GUI) view for an online game to be displayed to a device of a user; receiving, by the server, a first game input from the device of the user that represents a wager or a play according to game mechanics of the online game; providing, by the server, a GUI view for a minigame to be displayed to the device of the user, the providing the GUI view for the minigame activates the minigame; receiving, at the server, a second game input from the device of the user that represents a play according to game mechanics for the minigame, the second game input is operable for producing a result related to the minigame; responsive to producing the result related to the minigame, providing, by the server, the GUI view for the first online game to return to be displayed on the device of the user that deactivates the minigame and providing a payout for the first online game to the user and providing a promotional payout that depends at least in part on the result related to the minigame to the user.
 11. The method of claim 10, wherein the online game is a real money game and the minigame is not a real money game.
 12. The method of claim 11, wherein the payout for the online game and the promotional payout are for real money.
 13. The method of claim 10, wherein the minigame is created from a full-length video game, the minigame being subset of the full-length video game.
 14. The method of claim 10, wherein the minigame is created from a social game, the minigame includes social-networking features that enable the user to invite a friend to assist with playing the minigame or to join the game, to broadcast an indication of a progress of the user with respect to the minigame.
 15. The method of claim 10, wherein said providing the GUI view for the online game and said providing the GUI view for the minigame enables the user to make progress in both the online game and the minigame sequentially.
 16. The method of claim 10, wherein when the GUI view for the minigame is subsequently displayed to the device of the user, the minigame is configured to resume from a game state caused by the second game input.
 17. The method of claim 10, further comprising: verifying, at the server, that the user is eligible to play the first online game, the verifying includes determining that the user is old enough to legally play using data related to age obtained through an application programming interface (API).
 18. The method of claim 10, wherein said providing the payout for the online game is calculated based on a paytable associated with the first online game, and wherein the promotional payout is based on a percentage of the payout for the online game as calculated based on the paytable.
 19. A non-transitory computer-readable storage medium storing a computer program executable by a processor based system, comprising: program instructions for providing, by a server, a graphical user interface (GUI) view for a first online game to be displayed on a device of a user; program instructions for receiving, at the server, a first game input from the device of the user that represents a first play according to game mechanics of the first online game; program instructions for providing, by the server, a GUI view for a second game to be displayed on the device of the user, the GUI view is overlaid on part of the GUI view of the first online game; program instructions for receiving, at the server, a second game input from the user representing a second play according to game mechanics for the second game, the second game input is operable for producing a result related to the second game; program instructions for providing, by the server in response to said producing the result related to the second game, the GUI view for the first online game to return to be fully displayed on the device of the user and providing to the user a payout for the first online game and a promotional payout that depends at least in part on the result related to the second game.
 20. The non-transitory computer-readable storage medium of claim 19, wherein the first online game is a real money game and the second game is not a real money game, and wherein the payout for the first online game and the promotional payout are for real money. 